return impl->toplevel;
}
-static const cairo_user_data_key_t gdk_x11_cairo_key;
-
/**
* _gdk_x11_window_update_size:
* @impl: a #GdkWindowImplX11.
* X11 specific implementations of generic functions *
*****************************************************/
-static void
-gdk_x11_cairo_surface_destroy (void *data)
-{
- GdkWindowImplX11 *impl = data;
-
- impl->cairo_surface = NULL;
-}
-
static cairo_surface_t *
gdk_x11_create_cairo_surface (GdkWindowImplX11 *impl,
int width,
#ifdef HAVE_CAIRO_SURFACE_SET_DEVICE_SCALE
cairo_surface_set_device_scale (impl->cairo_surface, impl->window_scale, impl->window_scale);
#endif
-
- if (impl->cairo_surface)
- cairo_surface_set_user_data (impl->cairo_surface, &gdk_x11_cairo_key,
- impl, gdk_x11_cairo_surface_destroy);
if (WINDOW_IS_TOPLEVEL (window) && impl->toplevel->in_frame)
hook_surface_changed (window);
}
- else
- cairo_surface_reference (impl->cairo_surface);
+
+ cairo_surface_reference (impl->cairo_surface);
return impl->cairo_surface;
}
if (impl->cairo_surface)
{
cairo_surface_finish (impl->cairo_surface);
- cairo_surface_set_user_data (impl->cairo_surface, &gdk_x11_cairo_key,
- NULL, NULL);
+ cairo_surface_destroy (impl->cairo_surface);
+ impl->cairo_surface = NULL;
}
if (!recursing && !foreign_destroy)